package com.tarena.lbs.content.service;

import com.tarena.lbs.base.protocol.exception.BusinessException;
import com.tarena.lbs.base.protocol.pager.PageResult;
import com.tarena.lbs.content.pojo.param.ArticleActionParam;
import com.tarena.lbs.content.pojo.param.ArticleContentParam;
import com.tarena.lbs.content.pojo.po.ActionSearch;
import com.tarena.lbs.content.pojo.po.ArticleSearch;
import com.tarena.lbs.content.pojo.query.ArticleQuery;
import com.tarena.lbs.content.pojo.vo.ArticleActionPageResultVO;
import com.tarena.lbs.content.pojo.vo.ArticleActionVO;
import com.tarena.lbs.content.pojo.vo.ArticleVO;
import com.tarena.lbs.content.pojo.vo.UserVO;
import org.springframework.data.domain.Page;

import java.util.List;
import java.util.Set;

public interface ArticleService {
    PageResult<ArticleVO> articleList(ArticleQuery query);
    void addArticle(ArticleContentParam param);
    Set<String> articleLabels(ArticleQuery articleQuery);
    ArticleVO articleDetail(Integer id);
    void saveBehavior(ArticleActionParam param);
    ArticleActionPageResultVO behaviorLists(ArticleQuery query);
    void updateArticle(ArticleActionParam param);
    List<ArticleActionVO> getArticleAction(List<ActionSearch> actions, Page<ArticleSearch> articles, UserVO user);
}
